<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>


    <script>
        //闭包函数     一个函数可以访问另一个函数的内部变量  那么这个函数就叫做闭包函数
        // 用途  可以读取函数内部的变量
        // 闭包函数使用的变量不会被回收  始终保存在内存当中


        // js变量回收原则
        // 全局变量不会被回收
        // 局部遍历会被回收  也就是说  当一个函数运行完以后 函数内部声明的东西 都会被销毁
        // 如果函数内部的变量  被另一个作用域所使用  那么该变量也不会被回收



        // 闭包会导致内存泄漏  也就是变量不能正常回收
        function fun1() {
            let a = 100;
            function fun2() {
                let a = 200;
                console.log(a);

            }
            fun2()
        }
        fun1()







    </script>
</body>

</html>